import time
from public.action import *
from public.business import *
from public.testData import *
from public.tools import*
testCase="DBShop002_余额支付流程"

#在首页搜索“小米” 点击搜索按钮
dr=openBrowser(url)
#调用自定义函数进行登录
DBshopLogin(dr,userName,password)
#在首页的搜索框输入小米
dr.find_element_by_xpath("//input[@name='keywords']").send_keys("小米")
#点击搜索按钮
dr.find_element_by_xpath("//input[@type='submit']").click()
#点击打开小米手机页面详情
dr.find_element_by_xpath("//a[@href='/dbshop/goods/8/2']").click()
#切换到第二页面
switchWindow(dr,2)
#点击加入购物车按钮
dr.find_element_by_id("add_cart_submit").click()
time.sleep(3)
#点击去购物车结算
dr.find_element_by_link_text('去购物车结算').click()
# 点击"去结算"按钮
dr.find_element_by_link_text('去结算').click()
# 默认选择地址,点击下一步按钮
dr.find_element_by_xpath('//input[@value="下一步"]').click()
#默认余额支付已选择,点击确认订单
dr.find_element_by_xpath("//input[@value='确认订单']").click()
#使用变量orderNO存储订单编号
orderNO=dr.find_element_by_xpath('(//font[@color="color:#ED145B"])[2]').text
rootPath=get_pro_rootpath()
print(orderNO)
writeFile(rootPath+'\public\order002.txt',orderNO) # 将订单编号写入到文件中
# 点击马上去支付
dr.find_element_by_xpath('//input[@value="马上去支付"]').click()
# 点击返回订单
dr.find_element_by_link_text('返回订单').click()
#调用自定义函数进行后台的登录
dr.get(urlAdmin)
DBshopLoginAdmin(dr)
# 进入销售管理订单管理,找到刚才前台提交的订单,点击"编辑查看",再点击付款操作按钮
#调用后台的菜单操作函数
DBshopEnterMenu2(dr,'销售管理','订单管理')
# 搜索出订单
dr.find_element_by_name('order_sn').send_keys(orderNO)
# 点击编辑查看
dr.find_element_by_link_text('编辑查看').click()
#检查点，断言订单是否为已付款
aa=dr.find_element_by_xpath('//span[@class="text-success"]').text
try:
    aa="已付款"
    writeLog("%s 后台订单状态为已付款" %testCase)
    print("已付款")
except:
    writeLog("%s 测试失败,看截图" % testCase)
    getPhoto(dr)
    dr.quit()
# 点击"发货操作"按钮,点击"点击发货"按钮
dr.find_element_by_link_text('发货操作').click()
dr.find_element_by_xpath('//button').click()
#到dbshop前台我的订单中完成收货
dr.get(url)
#点击我的订单
dr.find_element_by_link_text('我的订单').click()
#点击已发货
dr.find_element_by_partial_link_text('已发货').click()
dr.find_element_by_name('search_order_sn').send_keys(orderNO)
dr.find_element_by_xpath('//button').click()
#点击确认收货
dr.find_element_by_xpath('//button[text()="确认收货"]').click()
dr.find_element_by_xpath('//button[@type="submit"]').click()
dr.switch_to.alert.accept()
#到dbshop前台查看我的订单"交易完成"中,检查上面的订单状态
#点击交易完成
dr.find_element_by_partial_link_text('交易完成').click()
dr.find_element_by_name('search_order_sn').send_keys(orderNO)
dr.find_element_by_xpath('//button').click()

#断言
try:
    dr.find_element_by_link_text(orderNO).is_displayed()  #is_displayed()函数判断元素是否显示
    writeLog("%s 测试通过"%testCase)
except:
    writeLog("%s 测试不通过" % testCase)
    getPhoto(dr)
dr.quit()
